<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="generator" content="hevea 2.18">
<link rel="stylesheet" type="text/css" href="manual.css">
<title>Chapter&#XA0;7&#XA0;&#XA0;The OCaml language</title>
</head>
<body>
<a href="advexamples.html"><img src="previous_motif.gif" alt="Previous"></a>
<a href="index.html"><img src="contents_motif.gif" alt="Up"></a>
<a href="extn.html"><img src="next_motif.gif" alt="Next"></a>
<hr>
<h1 class="chapter" id="sec70">Chapter&#XA0;7&#XA0;&#XA0;The OCaml language</h1>
<p> <a id="c:refman"></a>

</p><h3 class="subsection" id="sec71">Foreword</h3>
<p>This document is intended as a reference manual for the OCaml
language. It lists the language constructs, and gives their precise
syntax and informal semantics. It is by no means a tutorial
introduction to the language: there is not a single example. A good
working knowledge of OCaml is assumed.</p><p>No attempt has been made at mathematical rigor: words are employed
with their intuitive meaning, without further definition. As a
consequence, the typing rules have been left out, by lack of the
mathematical framework required to express them, while they are
definitely part of a full formal definition of the language.</p><h3 class="subsection" id="sec72">Notations</h3>
<p>The syntax of the language is given in BNF-like notation. Terminal
symbols are set in typewriter font (<span class="c002"><span class="c003">like</span> <span class="c003">this</span></span>).
Non-terminal symbols are set in italic font (<span class="c010">like</span> &#XA0;<span class="c010">that</span>).
Square brackets [&#X2026;] denote optional components. Curly brackets
{&#X2026;} denotes zero, one or several repetitions of the enclosed
components. Curly brackets with a trailing plus sign {&#X2026;}<sup>+</sup>
denote one or several repetitions of the enclosed components.
Parentheses (&#X2026;) denote grouping.</p><ul>
<li><a href="lex.html">7.1&#XA0;&#XA0;Lexical conventions</a>
</li><li><a href="values.html">7.2&#XA0;&#XA0;Values</a>
</li><li><a href="names.html">7.3&#XA0;&#XA0;Names</a>
</li><li><a href="types.html">7.4&#XA0;&#XA0;Type expressions</a>
</li><li><a href="const.html">7.5&#XA0;&#XA0;Constants</a>
</li><li><a href="patterns.html">7.6&#XA0;&#XA0;Patterns</a>
</li><li><a href="expr.html">7.7&#XA0;&#XA0;Expressions</a>
</li><li><a href="typedecl.html">7.8&#XA0;&#XA0;Type and exception definitions</a>
</li><li><a href="classes.html">7.9&#XA0;&#XA0;Classes</a>
</li><li><a href="modtypes.html">7.10&#XA0;&#XA0;Module types (module specifications)</a>
</li><li><a href="modules.html">7.11&#XA0;&#XA0;Module expressions (module implementations)</a>
</li><li><a href="compunit.html">7.12&#XA0;&#XA0;Compilation units</a>
</li></ul>

<hr>
<a href="advexamples.html"><img src="previous_motif.gif" alt="Previous"></a>
<a href="index.html"><img src="contents_motif.gif" alt="Up"></a>
<a href="extn.html"><img src="next_motif.gif" alt="Next"></a>
</body>
</html>
